﻿// ==================================================================
// All javascripts code in rethe.vn
// Developed by Digicorp Team
// ==================================================================
var pageURL = '/';
var logoURL = pageURL + 'upload/banners/logo.png';
var upload_folder = pageURL + 'upload/';
var xml_folder = pageURL + 'xml/';
var images_folder = pageURL + 'images/';
var service_folder = pageURL + 'services/';
var handler_file = 'Handler.ashx?';
var template_folder = pageURL + 'templates/';
var service_ext = '.asmx';
var html_ext = '.htm';
var categories_json = [{ "__type": "Categories", "CATEGORY_ID": "3", "CATEGORY_NAME": "Máy tính, linh kiện", "ANCHOR_TEXT": "/c3/may-tinh-linh-kien.htm" }, { "__type": "Categories", "CATEGORY_ID": "4", "CATEGORY_NAME": "Điện thoại, viễn thông", "ANCHOR_TEXT": "/c4/dien-thoai-vien-thong.htm" }, { "__type": "Categories", "CATEGORY_ID": "5", "CATEGORY_NAME": "Điện tử, điện Lạnh", "ANCHOR_TEXT": "/c5/dien-tu-dien-lanh.htm" }, { "__type": "Categories", "CATEGORY_ID": "6", "CATEGORY_NAME": "Máy ảnh, máy quay", "ANCHOR_TEXT": "/c6/may-anh-may-quay.htm" }, { "__type": "Categories", "CATEGORY_ID": "8", "CATEGORY_NAME": "Website, Phần mềm", "ANCHOR_TEXT": "/c8/website-phan-mem.htm" }, { "__type": "Categories", "CATEGORY_ID": "9", "CATEGORY_NAME": "Ẩm thực", "ANCHOR_TEXT": "/c9/am-thuc.htm" }, { "__type": "Categories", "CATEGORY_ID": "10", "CATEGORY_NAME": "Thời trang", "ANCHOR_TEXT": "/c10/thoi-trang.htm" }, { "__type": "Categories", "CATEGORY_ID": "11", "CATEGORY_NAME": "Du lịch", "ANCHOR_TEXT": "/c11/du-lich.htm"}];
var right_partners_logo = [{ "__type": "Partners", "PARTNER_NAME": "Tập đoàn FPT", "LOGO_PATH": "2011/10/31/fpt.png", "WEBSITE": "http://fpt.vn" }, { "__type": "Partners", "PARTNER_NAME": "Tập đoàn Viettel", "LOGO_PATH": "2011/10/31/viettel.png", "WEBSITE": "http://viettel.com.vn" }, { "__type": "Partners", "PARTNER_NAME": "Công ty thông tin di động VMS-Mobifone", "LOGO_PATH": "2011/10/31/mobifone.png", "WEBSITE": "http://mobifone.com.vn" }, { "__type": "Partners", "PARTNER_NAME": "Thiết kế website tốt nhất Việt nam", "LOGO_PATH": "2011/10/31/digiweb.png", "WEBSITE": "http://digiweb.vn" }, { "__type": "Partners", "PARTNER_NAME": "Công ty cổ phần Digicorp", "LOGO_PATH": "2011/10/31/digicorp.png", "WEBSITE": "http://digicorp.vn"}];
var ads_right = [{ "__type": "Advertising", "PICTURE_ID": "5", "PICTURE_NAME": "Tập đoàn FPT", "PICTURE_PATH": "2011/10/31/fpt.png", "TARGET_LINK": "http://fpt.vn" }, { "__type": "Advertising", "PICTURE_ID": "4", "PICTURE_NAME": "Tập đoàn Viettel", "PICTURE_PATH": "2011/10/31/viettel.png", "TARGET_LINK": "http://www.viettel.com.vn" }, { "__type": "Advertising", "PICTURE_ID": "3", "PICTURE_NAME": "Công ty thông tin di động VMS-Mobifone", "PICTURE_PATH": "2011/10/31/mobifone.png", "TARGET_LINK": "http://mobifone.com.vn" }, { "__type": "Advertising", "PICTURE_ID": "2", "PICTURE_NAME": "Thiết kế website tốt nhất Việt nam", "PICTURE_PATH": "2011/10/31/digiweb.png", "TARGET_LINK": "http://digiweb.vn" }, { "__type": "Advertising", "PICTURE_ID": "1", "PICTURE_NAME": "Công ty cổ phần Digicorp", "PICTURE_PATH": "2011/10/31/digicorp.png", "TARGET_LINK": "http://digicorp.vn"}];

function apply_json(elementID, json_string, htmlTemplate) {
    $('#' + elementID).setTemplateURL(template_folder + htmlTemplate + html_ext, null, { filter_data: false });
    $('#' + elementID).processTemplate(json_string);
}

$.MetaTags = function () {
    var $Meta;
    if ($('meta[name=' + arguments[0] + ']').size() > 0) {
        $Meta = $('meta[name=' + arguments[0] + ']');
    } else {
        $Meta = $('meta[http-equiv=' + arguments[0] + ']');
    }

    if (arguments.length == 1) return $Meta.attr('content');
    else $Meta.attr('content', arguments[1]);
};

function LoadBanner(xml_file) {
    $.ajax({
        type: "GET",
        url: xml_file,
        dataType: "xml",
        success: parseXml
    });
}

function parseXml(xml) {
    $(xml).find("banner").each(function () {
        if ($(this).attr("id") == 'logo') {
            $("#top_logo").append('<a href=' + $(this).find('link').text() + '><img src=' + $(this).find('src').text() + ' alt=' + $(this).find('alt').text() + ' height="96" /></a>');
        }
    });
}

function ajax_request(method_name, data, elementID, htmlTemplate) {
    var params;
    if (data == '') {
        params = '{}';
    } else {
        params = '{' + data + '}';
    }

    $.ajax({
        type: "POST",
        url: service_folder + 'RetheServices' + service_ext + '/' + method_name,
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            $('#' + elementID).setTemplateURL(template_folder + htmlTemplate + html_ext, null, { filter_data: false });
            $('#' + elementID).processTemplate(data.d);
        },
        error: function (textStatus) {
        }
    });
}

function set_home_page() {
    if (document.all) {
        document.body.style.behavior = "url(#default#homepage)";
        document.body.setHomePage(pageURL);
    }
}

function show_hide_menu() {
    var style = $(".category").attr("style");
    if (style == "undefined") {
        $(".category").slideUp();
        $(".category").css('display', 'none');
    } else {
        if (style == "display: none;") {
            $(".category").slideDown('fast');
            $(".category").css('display', 'block');
        } else {
            $(".category").slideDown('fast');
            $(".category").css('display', 'none');
        }
    }
}

function build_main_nav() {
    var stringMenu = '';
    stringMenu += '<li class="active"><a href="/trang-chu"><span class="home"><img src="../images/iconhome.png" /></span>Trang chủ</a></li>';
    stringMenu += '<li><a href="/khuyen-mai-hom-nay">Khuyến mãi hôm nay</a></li>';
    stringMenu += '<li><a href="/khuyen-mai-noi-bat">Khuyến mãi nổi bật</a></li>';
    stringMenu += '<li><a href="/khuyen-mai-gan-day">Khuyến mãi gần đây</a></li>';
    $("#mainNav").append(stringMenu);
}

function display_logo() {
    $("#top_logo").append('<a href=' + pageURL + '><img src=' + logoURL + ' alt=' + pageURL + ' height="96" /></a>');
}

function validate_form_registration() {
    var region_id = '';
    var username = '';
    var password = '';
    var code = '';
    var fullname = '';
    var email = '';
    var mobile = '';
    var gender = '';
    var company = '';
    var address = '';
    var birthday = '';
    var nick = '';

    var data = '{'
    + 'region_id:' + region_id + ','
    + 'username:' + username + ','
    + 'password:' + password + ','
    + 'code:' + code + ','
    + 'fullname:' + fullname + ','
    + 'email:' + email + ','
    + 'mobile:' + mobile + ','
    + 'gender:' + gender + ','
    + 'company:' + company + ','
    + 'address:' + address + ','
    + 'birthday:' + birthday + ','
    + 'nick:' + nick
    + '}';

    var service_url = service_folder + 'RetheServices' + service_ext + '/' + 'MemberRegister';

    submit_form(service_url, data);
}


function handler_submit(action, data, divResult) {
    $.post(service_folder + handler_file + 'action=' + action + '&data=' + data, {},
       function (data) {
           $('#' + divResult).html(data);
       });
}

function ajaxAction(where, url) {
    $.post(pageURL + url, {},
       function (data) {
           $(where).html(data);
       });
}

function getCurrentdate() {
    var currentTime = new Date()
    var month = currentTime.getMonth() + 1
    var day = currentTime.getDate()
    var year = currentTime.getFullYear()
    return month + "/" + day + "/" + year;
}

function handler_login(action, data, message, success) {
    $.post(service_folder + handler_file + 'action=' + action + '&data=' + data, {},
       function (data) {
           var result = data.toString();
           if (result.indexOf("SUCCESS_") > -1) {
               result = result.replace("SUCCESS_", "");
               var array = result.split('|');
               ajax_request('SuccessLogin', "'result':'" + array[0] + "-" + array[1] + "'", success, 'SuccessLogin');
               cd();
           } else {
               ajax_request('LoginError', "'result':'" + result + "'", message, 'MessageBox');
           }
       });
}

function remove_empty_location() {
    var locations = ['#location_01', '#content', '#sideBar', '#right_ad', '#barrel .user'];
    $.each(locations, function (index, value) {
        if (index == 0 && $(value).find('.top') && $(value).children().length == 2) {
            $(value).remove();
        } else if ($(value).children().length == 0) {
            $(value).remove();
        } else if (index == 4 && $(value) && $(value).find('.menu_user') && $(value).find('.main_user') && ($(value).find('.menu_user').children().length == 0 || $(value).find('.main_user').children().length == 0)) {
            $(value + " .menu_user").parent().parent().remove();
        } else {
            return;
        }
    });
}

function remove_not_item() {
    var value = $('.similar3').html();
    if (value != null) {
        $('.not_items').remove();
    }
}

function reload_captcha(imgID, width, height) {
    $("#" + imgID).attr({ src: pageURL + 'pages/captcha.aspx?' + (new Date()).getTime() + '&width=' + width + '&height=' + height });
    setTimeout(function () { $('#button_captcha').attr({ src: pageURL + "images/refresh.png" }); }, 500);
}

function do_search() {
    var keyword = $('#keyword').val();
    var category_id = $('#rethe_search_categories option:selected').val();
    window.open(pageURL + 'ket-qua-tim-kiem/c=' + category_id + '&k=' + keyword, '_blank');
}

function paging(keyword, category_id) {

    ajax_request('FilterDeals', 'keyword:' + keyword + ',category_id:' + category_id, 'div_search_result', "SearchResult");
}

function do_register() {
    if (do_validate('#barrel')) {
        var data = 1 + ','
               + get_value('#username') + ','
               + get_value('#password') + ','
               + get_value('#avatar') + ','
               + get_value('#fullname') + ','
               + get_value('#email') + ','
               + get_value('#mobile') + ','
               + get_value('#gender') + ','
               + get_value('#company') + ','
               + get_value('#address') + ','
               + '01/01/2011' + ','
               + get_value('#yahoo') + '-'
               + get_value('#skype') + ','
               + get_value('#website');

        $.post(service_folder + handler_file + 'action=register' + '&data=' + data, {},
       function (data) {
           switch (data) {
               case 'EXISTS_USERNAME':
                   alert('Tài khoản' + get_value('#username') + ' đã có người sử dụng. Quý khách vui lòng chọn tài khoản khác!');
                   break;
               case 'UNKNOW':
                   alert('Rất xin lỗi quý khách, hiện tại hệ thống đang bảo trì nên Quý khách không thể đăng ký vào lý này, xin Quý khách quay trở lại vào ngày mai!');
                   break;
               default:
                   remove_element('.registration');
                   break;
           }
       });
    }
}

function do_validate(elementID) {
    var flag = true;
    var inputs = $(elementID).find("input");
    $.each(inputs, function (k, v) {
        var classAttr = $(v).attr('class');
        if (classAttr != null && classAttr != undefined) {
            var classList = classAttr.split(/\s+/);
            for (var ix = 0, len = classList.length; ix < len; ix++) {
                switch (classList[ix]) {
                    case 'required':
                        if ($(v).attr('value') == '' || $(v).attr('value') == $(v).attr('title') || $(v).attr('value') == $(v).attr('error')) {
                            set_value($(v), $(v).attr('error'));
                            add_class($(v), 'error');
                            flag = false;
                        } else {
                            remove_class($(v), 'error');
                            add_class($(v), 'as');
                            flag = true;
                        }
                        break;
                    case 'email':
                        if (is_email($(v).attr('value'))) {
                            remove_class($(v), 'error');
                            add_class($(v), 'as');
                            flag = true;
                        } else {
                            set_value($(v), $(v).attr('error'));
                            add_class($(v), 'error');
                            flag = false;
                        }
                        break;
                    default:
                        break;
                }
            }
        }
    });

    return flag;
}

function do_login() {
    var username = get_value('#auth_user_name');
    var email = get_value('#auth_email');
    if (username == '') {
        add_class('#auth_user_name', 'error');
        set_value('#auth_user_name', 'Phải nhập tài khoản đăng nhập');
    } else if (email == '') {
        $('#auth_email').addClass('error');
        add_class('#auth_email', 'error');
        set_value('#auth_email', 'Hãy nhập địa chỉ E-mail Quý khách đã sử dụng để đăng ký thành viên');
    } else if (!is_email(email)) {
        add_class('#auth_email', 'error');
        set_value('#auth_email', 'Sai địa chỉ E-mail');
    } else {
        remove_class('auth_user_name', 'error');
        remove_class('auth_email', 'error');
        add_class('#auth_email', 'as');
        add_class('#auth_user_name', 'as');

        $.ajax({
            type: "POST",
            url: service_folder + 'RetheServices' + service_ext + '/ForgotPassword',
            data: '{user_name:' + '\'' + username + '\'' + ',email:' + '\'' + email + '\'' + '}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            beforeSend: function () {
                set_html('#divBeforeSend', '');
                set_html('#divMessageBox', '');
                set_value('#auth_user_name', '');
                set_value('#auth_email', '');
                append_text('#divBeforeSend', '<img src=\'' + pageURL + 'images/loading.gif\'' + ' atl=\'Đang thực hiện\' />');
                append_text('#divBeforeSend', '<p>Đang thực hiện....</p>');
            },
            success: function (data) {
                $('#divMessageBox').setTemplateURL(template_folder + 'MessageBox' + html_ext, null, { filter_data: false });
                $('#divMessageBox').processTemplate(data.d);
                set_html('#divBeforeSend', '');
                remove_class('#auth_email', 'error');
                remove_class('#auth_user_name', 'error');
                remove_class('#auth_email', 'as');
                remove_class('#auth_user_name', 'as');
            },
            error: function (textStatus) {
            }
        });
    }
}

function set_html(element, html) {
    $(element).html(html);
}

function append_text(element, text) {
    $(element).append(text);
}

function get_value(element) {
    if ($(element).val() == null || $(element).val() == '')
        return '';
    else
        return $(element).val();
}

function set_value(element, value) {
    $(element).val(value);
}

function add_class(element, classname) {
    $(element).addClass(classname);
}

function remove_class(element, classname) {
    $(element).removeClass(classname);
}

function remove_element(element) {
    $(element).remove();
}

function is_email(email) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    return reg.test(email);
}

$(document).ready(function () {
    ajax_request('GetMostViewed', 'rows:5', 'slideshow', "HomeSlideshow");
    ajax_request('GetMostViewed', 'rows:5', 'most_viewed_deals', "MostViewedDeals");
    ajax_request('GetLatestDeals', 'rows:5', 'lastest_deals', "LastestDeals");
    ajax_request('GetTopDealsHome', 'rows:8', 'top_deals_home', "TopDealsHome");
    ajax_request('GetHighLightsDeals', 'rows:3', 'highlights_products', "HighLightsDeals");
    ajax_request('GetHotKeywords', '', 'hot_keywords', "HotKeywords");
    ajax_request('LoadRightADS', 'module_id:6', 'ads_right', "AdsRight");
    ajax_request('LoadRightPartnerLogo', 'module_id:5', 'ticker', "RightPartnersLogo");
    ajax_request('GetChildrenCategory', 'parent_id:18', 'rethe_morecat', "CategoriesInMenu");
    ajax_request('GetChildrenCategory', 'parent_id:18', 'rethe_search_categories', "CategoriesInSearchbox");

    //apply_json('ads_right', ads_right, 'AdsRight');
    //apply_json('ticker', right_partners_logo, 'RightPartnersLogo');
    //apply_json('rethe_morecat', categories_json, 'CategoriesInMenu');
    //apply_json('rethe_search_categories', categories_json, 'CategoriesInSearchbox');

    $("img").lazyload({
        placeholder: images_folder + "grey.gif",
        effect: "fadeIn"
    });

    $('.regulations').click(function () {
        $('.regulations').css("height", "400px");
    });

    $('#navBar ul li').click(function () {
        $('.active').removeClass('active');
        $(this).addClass('active');
    });
    $('#navBar h5').click(function () {
        $('.active2').removeClass('active2');
        $(this).addClass('active2');
    });
    $('.category h6 a').click(function () {
        $('.active2').removeClass('active2');
    });

    $('.menu_footer ul li a').click(function () {
        $('.active3').removeClass('active3');
        $(this).addClass('active3');
    });
    $(".text").focus(function () {
        $(this).addClass("as");
        if ($(this).attr("defaultvalue") == $(this).val()) $(this).val("");
    });
    $(".text").blur(function () {
        $(this).removeClass("as");
        if ($(this).val() == "") $(this).val($(this).attr("defaultvalue"));
    });
    display_logo();
    build_main_nav();
    show_hide_menu();
    remove_empty_location();
    remove_not_item();
});

function handler_count(storeprocedure) {
    $.post(service_folder + handler_file + 'action=count&data=' + storeprocedure, {},
       function (data) {
           return data;
       });
}

function ajax_get_comment(method_name, data, elementID, htmlTemplate, pageclickednumber) {
    var params;
    if (data == '') {
        params = '{}';
    } else {
        params = '{' + data + '}';
    }

    $.ajax({
        type: "POST",
        url: service_folder + 'RetheServices' + service_ext + '/' + method_name,
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            $('#' + elementID).setTemplateURL(template_folder + htmlTemplate + html_ext, null, { filter_data: false });
            $('#' + elementID).processTemplate(data.d);
            $("#pager").pager({ pagenumber: pageclickednumber, pagecount: (parseInt(data.d[0].TOTAL_ROWS / 6) + 1), buttonClickCallback: PageClick });
        },
        error: function (textStatus) {
        }
    });
}
